package ar.edu.utn.frgp.Banco.model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import ar.edu.utn.frgp.Banco.model.base.Operacion;
import ar.edu.utn.frgp.Banco.model.enums.OrigenMovimiento;
import ar.edu.utn.frgp.Banco.model.enums.TipoMovimiento;


@Entity(name="Movimientos")
public class Movimiento extends Operacion implements Serializable {

	private static final long serialVersionUID = 1L;
	
	@ManyToOne(targetEntity = Cuenta.class, fetch = FetchType.LAZY)
	private Cuenta cuenta;

	@Column(name="fecha")
	private Date fecha;

	@Enumerated(EnumType.STRING)
	private TipoMovimiento tipomovimiento;

	@Enumerated(EnumType.STRING)
	private OrigenMovimiento origen;

	@Column(name="saldoactual")
	private double saldoactual;

	@Column(name="montomovimiento")
	private double montomovimiento;

	public Cuenta getCuenta() {
		return cuenta;
	}

	public Date getFecha() {
		return fecha;
	}

	public double getMontomovimiento() {
		return montomovimiento;
	}

	public OrigenMovimiento getOrigen() {
		return origen;
	}

	public double getSaldoactual() {
		return saldoactual;
	}

	public TipoMovimiento getTipomovimiento() {
		return tipomovimiento;
	}

	public void setCuenta(Cuenta cuenta) {
		this.cuenta = cuenta;
	}
	
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	
	public void setMontomovimiento(double montomovimiento) {
		this.montomovimiento = montomovimiento;
	}
	
	public void setOrigen(OrigenMovimiento origen) {
		this.origen = origen;
	}
	
	public void setSaldoactual(double saldoactual) {
		this.saldoactual = saldoactual;
	}
	
	public void setTipomovimiento(TipoMovimiento tipomovimiento) {
		this.tipomovimiento = tipomovimiento;
	}
	
	}
